//一定的时间间隔内，事件无论触发多少次，都只会执行一次
//与防抖不同，防抖不是限定了一定时间间隔内，而是看相邻两次事件触发的时间间隔超出没，超出限制就执行，没超出就重新生成延迟任务，继续等待
function throttle(func, ms=1000){
    let canRun = true;
    return function(...args){
        if(!canRun) return;
        canRun = false;
        setTimeout(()=>{
            func.apply(this, args);
            canRun = true;
        },ms);
    }
}

var task = ()=>{ console.log('run throttle task'); }
var throttleTask = throttle(task, 1000);
window.addEventListener('scroll', throttleTask);